﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;
using XNATools.Services.Interfaces;
using XNATools.Managers;

namespace XNATools.Events.EventArgs
{
    /// <summary>
    /// Class for holding KeyboardActionEventArgs
    /// </summary>
    public sealed class KeyboardActionEventArgs:System.EventArgs
    {
        #region Fields

        private Keys[] _Keys;

        #endregion

        #region cTor(s)

        /// <summary>
        /// New KeyboardActionEventArgs
        /// </summary>
        /// <param name="pressedKeys"></param>
        internal KeyboardActionEventArgs(Keys[] pressedKeys)
        {            
            _Keys = pressedKeys;
        }

        #endregion

        #region Methods
        #endregion

        #region Properties

        /// <summary>
        /// Gets keys in down state when event occured
        /// </summary>
        public Keys[] KeysPressed
        {
            get
            {
                return _Keys;
            }
        }

        /// <summary>
        /// Gets the Keyboardservice
        /// </summary>
        public IKeyboardService KeyboardService
        {
            get
            {
                return ServiceManager.Get<IKeyboardService>();
            }
        }

        #endregion
    }
}
